package com.eliza.cmps.activity

import android.graphics.drawable.ColorDrawable
import android.os.Bundle
import android.view.LayoutInflater
import android.view.MotionEvent
import android.view.View
import android.view.ViewGroup
import android.widget.Button
import android.widget.PopupWindow
import androidx.appcompat.app.AppCompatActivity
import com.eliza.cmps.R
import com.eliza.library.tools.InfoTools


class PopupWindowActivity : AppCompatActivity() {
    private var context = this
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_popupwindow)
        findViewById<Button>(R.id.PopupWindow_btn_show).setOnClickListener {
            initPopWindow(it)
        }
    }

    override fun onTouchEvent(event: MotionEvent?): Boolean {
        return super.onTouchEvent(event)
    }

    private fun initPopWindow(v: View) {
        val view: View =
            LayoutInflater.from(context).inflate(R.layout.activity_popupwindow_item, null, false)


        //1.构造一个PopupWindow，参数依次是加载的View，宽高
        val popWindow = PopupWindow(
            view,
            ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT, true
        ).apply {
            animationStyle = R.anim.anim_pop// //设置加载动画

            //这些为了点击非PopupWindow区域，PopupWindow会消失的，如果没有下面的
            //代码的话，你会发现，当你把PopupWindow显示出来了，无论你按多少次后退键
            //PopupWindow并不会关闭，而且退不出程序，加上下述代码可以解决这个问题

            isTouchable = true
//               boolean onTouch(View var1, MotionEvent var2)

            //设置popupWindow显示的位置，参数依次是参照View，x轴的偏移量，y轴的偏移量
            showAsDropDown(v, 1000, 100)
            //为popWindow设置一个背景
            setBackgroundDrawable(ColorDrawable(0x00000000))
            setTouchInterceptor { view, motionEvent ->
                // 这里如果返回true的话，touch事件将被拦截
                // 拦截后 PopupWindow的onTouchEvent不被调用，这样点击外部区域无法dismiss
                false
            }
        }



        view.findViewById<Button>(R.id.PopupWindow_btn_xixi).setOnClickListener {
            InfoTools.ToastTools(context, "你点击了嘻嘻")
        }
        view.findViewById<Button>(R.id.PopupWindow_btn_hehe).setOnClickListener {
            InfoTools.ToastTools(context, "你点击了呵呵")
            popWindow.dismiss()
        }

    }


}

